package com.joven.shelltest.utils.uniquesequence;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.ThreadLocalRandom;

/**
 * 时间戳+随机数/序列
 * @Author: wzj
 * @Date: 2024/3/21 9:32
 */
public class OrderNumberGenerator {

    // 定义随机数范围
    private static final int RANDOM_NUM_BOUND = 10000;

    public static String generateOrderNumber(String prefix) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
        // 生成时间戳部分
        String timestamp = dateFormat.format(new Date());
        // 生成随机数部分
        int randomNumber = ThreadLocalRandom.current().nextInt(RANDOM_NUM_BOUND);
        // 组合成订单号
        return prefix + timestamp + String.format("%04d", randomNumber);
    }

    public static void main(String[] args) {
        // 示例：生成订单号，假设业务前缀为"ORD"
        String orderNumber = generateOrderNumber("ORD");
        System.out.println("Generated Order Number: " + orderNumber);
    }
}
